package tools.calendar;

import java.util.Calendar;
import tools.GUI.PanelGUI;

/**
 *
 * @author Félix Marín Ramírez || felixmurcia@gmail.com
 * @version 1.0.1b
 */
/**
 * Clase que contiene una lista de métodos, los cuales, muestran por pantalla la
 * fecha, la hora o la fecha y la hora actual en distintos formatos.
 */
public class FechaHoraActual implements java.io.Serializable {

    private static Calendar fecha;
    private static String cadena;

    /**
     * Constructor que al ser instalciado crea automaticamente un objeto de tipo
     * Calendar.
     */
    public void FechaHoraActual() {
        fecha = Calendar.getInstance();
    }

    /**
     * @return Devuelve la <strong>fecha</strong> en formato:
     * <strong>2013-07-26</strong>.
     */
    public String fecha1() {
        cadena = String.format("%tF\n", fecha);
        return cadena;
    }

    /**
     * @return Devuelve la <strong>fecha</strong> en formato:
     * <strong>07/26/13</strong>.
     */
    public String fecha2() {
        cadena = String.format("%tD\n", fecha);
        return cadena;
    }

    /**
     * @return Devuelve la <strong>fecha</strong> en formato: <strong>vie, jul
     * 26, 13</strong>.
     */
    public String fecha3() {
        cadena = String.format("%1$ta, %1$tb %1$te, %1$ty\n", fecha);
        return cadena;
    }

    /**
     * @return Devuelve la <strong>hora</strong> en formato: <strong>02:56:38
     * PM</strong>.
     */
    public String hora1() {
        cadena = String.format("%tr\n", fecha);
        return cadena;
    }

    /**
     * @return Devuelve la <strong>hora</strong> en formato:
     * <strong>14:57:18</strong>.
     */
    public String hora2() {
        cadena = String.format("%tT\n", fecha);
        return cadena;
    }

    /**
     * @return Devuelve la <strong>hora</strong> en formato: <strong>CEST
     * 02:57:49 pm</strong>.
     */
    public String hora3() {
        cadena = String.format("%1$tZ %1$tI:%1$tM:%1$tS %tp\n", fecha);
        return cadena;
    }

    /**
     * @return Devuelve <strong>la fecha y la hora</strong> en formato:
     * <strong>viernes, julio 26, 2013</strong>.
     */
    public String fechaHora1() {
        cadena = String.format("%1$tA, %1$tB %1$td, %1$tY\n", fecha);
        return cadena;
    }

    /**
     * @return Devuelve <strong>la fecha y la hora</strong> en formato:
     * <strong>vie jul 26 14:59:17 CEST 2013</strong>.
     */
    public String fechaHora2() {
        cadena = String.format("%tc\n", fecha);
        return cadena;
    }

    /**
     * @return Devuelve <strong>la fecha y la hora</strong> en formato:
     * <strong>VIERNES, JULIO 26, 2013</strong>.
     */
    public String fechaHora3() {
        cadena = String.format("%1$TA, %1$TB %1$Td, %1$TY\n", fecha);
        return cadena;
    }

    /**
     * Método que sirve para establecer una fecha.
     *
     * @param dia parámetro que contiene el <strong>día</strong> establecido por
     * el usuario.
     * @param mes parámetro que contiene el <strong>mes</strong> establecido por
     * el usuario.
     * @param año parámetro que contiene el <strong>año</strong> establecido por
     * el usuario.
     */
    public void establecerFecha(int dia, int mes, int año) {
        fecha.set(año, mes, dia);
    }

    /**
     * Método que sirve para establecer una fecha con la hora exacta.
     *
     * @param dia parámetro que contiene el <strong>día</strong> establecido por
     * el usuario.
     * @param mes parámetro que contiene el <strong>mes</strong> establecido por
     * el usuario.
     * @param año parámetro que contiene el <strong>año</strong> establecido por
     * el usuario.
     * @param horas parámetro que contiene el <strong>la hora</strong>
     * establecido por el usuario.
     * @param minutos parámetro que contiene el <strong>los minutos</strong>
     * establecidos por el usuario.
     */
    public void establecerFechaHora(int dia, int mes, int año, int horas, int minutos) {
        fecha.set(mes, mes, año, horas, minutos);
    }

    /**
     * Método utilizado para limpiar el contenido del objeto fecha.
     */
    public void borrarFecha() {
        fecha.clear();
    }

    /**
     * Muestra una ventana con la <strong>fecha</strong> en formato:
     * <strong>2013-07-26</strong>.
     */
    public void fecha1WIN() {
        PanelGUI.informacion(fecha1());
    }

    /**
     * Muestra una ventana con la <strong>fecha</strong> en formato:
     * <strong>07/26/13</strong>.
     */
    public void fecha2WIN() {
        PanelGUI.informacion(fecha2());
    }

    /**
     * Muestra una ventana con <strong>fecha</strong> en formato: <strong>vie,
     * jul 26, 13</strong>.
     */
    public void fecha3WIN() {
        PanelGUI.informacion(fecha3());
    }

    /**
     * Muestra una ventana con la <strong>hora</strong> en formato:
     * <strong>02:56:38 PM</strong>.
     */
    public void hora1WIN() {
        PanelGUI.informacion(hora1());
    }

    /**
     * Muestra una ventana con la <strong>hora</strong> en formato:
     * <strong>14:57:18</strong>.
     */
    public void hora2WIN() {
        PanelGUI.informacion(hora2());
    }

    /**
     * Muestra una ventana con la <strong>hora</strong> en formato: <strong>CEST
     * 02:57:49 pm</strong>.
     */
    public void hora3WIN() {
        PanelGUI.informacion(hora3());
    }

    /**
     * Muestra una ventana con <strong>la fecha y la hora</strong> en formato:
     * <strong>viernes, julio 26, 2013</strong>.
     */
    public void fechaHora1WIN() {
        PanelGUI.informacion(fechaHora1());
    }

    /**
     * Muestra una ventana con <strong>la fecha y la hora</strong> en formato:
     * <strong>vie jul 26 14:59:17 CEST 2013</strong>.
     */
    public void fechaHora2WIN() {
        PanelGUI.informacion(fechaHora2());
    }

    /**
     * Muestra una ventana con <strong>la fecha y la hora</strong> en formato:
     * <strong>VIERNES, JULIO 26, 2013</strong>.
     */
    public void fechaHora3WIN() {
        PanelGUI.informacion(fechaHora3());
    }
}
